GtkWindow: Ensure the toplevel is realized before realizing popovers
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 14 Apr 2016 09:05:00 +0000 (11:05 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 14 Apr 2016 09:39:48 +0000 (11:39 +0200)
Otherwise those get a NULL parent window, which is toplevel-y enough
to disembody the popover.

https://bugzilla.gnome.org/show_bug.cgi?id=764060

gtk/gtkwindow.c

index b19a643059fe122050d92bfd23d799c341f1354a..7a3d13c96adfeea6dc77a176da9e7b29cc3c9569 100644 (file)
@@ -12291,7 +12291,8 @@ _gtk_window_set_popover_position (GtkWindow                   *window,
   data->rect = *rect;
   data->pos = pos;
 
-  if (gtk_widget_is_visible (popover) && !data->window)
+  if (gtk_widget_is_visible (popover) && !data->window &&
+      gtk_widget_get_realized (GTK_WIDGET (window)))
     {
       popover_realize (popover, data, window);
       popover_map (popover, data);